package com.zhoux.api.io.file;

import java.io.File;
import java.io.FileFilter;

/**
 * @author taoyi
 * @version 1.0
 * @date 2021/3/24 14:24
 *
 * 本类用于测试重载的 listFiles() 方法可以传入一个过滤器，然后只将该目录中符合过滤器要求的子项返回。
 */

public class ListFile_Test {
    public static void main(String[] args) {
        // 获取目标目录中所有名字已 "." 开始的子项
        File dir = new File(".");
        if (dir.isDirectory()){

            /**
             * 实现文件过滤器接口时，必须重写 accept() 方法,
             * 这个方法就是过滤方法将参数 file 看作是要过滤的子项,
             * 当该子项符合过滤要求需要保留时则 accept() 方法应当
             * 返回 true , 否则返回 false
             *
             */
            FileFilter filter = new FileFilter() {
                @Override
                public boolean accept(File file) {
                    // 获取要过滤的该项内容的名字
                    String name = file.getName();
                    // 过滤条件
                    return name.startsWith(".");
                }
            };
            File[] subs = dir.listFiles(filter);
            System.out.println("当前目录满足条件的子项有: "+ subs.length+"个！");
            for (int i = 0; i < subs.length; i++) {
                System.out.println(subs[i]);
            }
        }
    }
}
